import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import path from "path";
import { ConfigEnv, loadEnv, UserConfig } from "vite";
import { viteMockServe } from "vite-plugin-mock";
import svgLoader from "vite-svg-loader";

const CWD = process.cwd();

// https://vitejs.dev/config/
export default ({ mode }: ConfigEnv): UserConfig => {
  const { VITE_BASE_URL } = loadEnv(mode, CWD);
  return {
    base: VITE_BASE_URL,
    resolve: {
      alias: {
        "@": path.resolve(__dirname, "./src"),
      },
    },

    css: {
      preprocessorOptions: {
        less: {
          modifyVars: {
            hack: `true; @import (reference) "${path.resolve(
              "src/style/variables.less"
            )}";`,
          },
          math: "strict",
          javascriptEnabled: true,
        },
      },
    },

    plugins: [
      vue(),
      vueJsx(),
      viteMockServe({
        mockPath: "mock",
        localEnabled: false,
      }),
      svgLoader(),
    ],

    server: {
      port: 3000,
      host: "0.0.0.0",
      proxy: {
        // "/api":
        // [VITE_API_URL_PREFIX]: {
        "/api": {
          target: "http://127.0.0.1:8080/",
          changeOrigin: true,
        },
      },
    },
  };
};
